package com.xoms.admin.service;

import com.xoms.admin.controller.res.bean.RProJSONBean;
import com.xoms.admin.controller.res.bean.RProSelectJSONBean;
import com.xoms.admin.controller.res.bean.RProductBean;
import com.xoms.admin.controller.res.bean.RProductDetailBean;
import com.xoms.admin.model.AccountBean;
import com.xoms.admin.service.res.PageResult;

/**
 * 商品列表
 * @author dong
 *
 */
public interface ProductService {

	
	/**
	 * 编辑新建商品
	 * @param account
	 * @param pid
	 * @param name
	 * @param productBar
	 * @param categroyId
	 * @param imgUrl
	 * @param specs
	 * @param unitId
	 * @param status
	 * @param warnNum
	 * @param remark
	 * @param type 
	 * @param costType 
	 * @param maxNum 
	 * @param anitPrice 
	 * @param groups 
	 * @return
	 */
	RProductDetailBean edit(AccountBean account, String pid, String name, String productBar, String categroyId, String imgUrl,
			String specs, int unitId, String status, int warnNum, String remark, int type, int maxNum, int costType, String groups, double anitPrice);
	
	/**
	 * 获取商品列表
	 * @param account
	 * @param key
	 * @param page
	 * @param pagesize
	 * @param cid
	 * @param type 
	 * @return
	 */
	PageResult<RProductBean> getProducts(AccountBean account, String key, int page, int pagesize, String cid, String type);
	
	/**
	 * 根据id获取商品信息
	 * @param account
	 * @param productId
	 * @return
	 */
	RProductDetailBean getDetail2Pid(AccountBean account, String productId);
	
	/**
	 * 根据名称或条形码获取商品列表
	 * @param account
	 * @param name
	 * @param productBar
	 * @return
	 */
	PageResult<RProductBean> getProduct2NameBar(AccountBean account, String name, String productBar);
	
	/**
	 * 获取在售的有售价的商品
	 * @param account
	 * @return
	 */
	RProJSONBean getSellList(AccountBean account);
	
	/**
	 * 编辑排序
	 * @param sorts
	 * @return
	 */
	boolean editSorts2Product(String sorts);
	
	/**
	 * 获取下拉选商品
	 * @param account
	 * @param type
	 * @return
	 */
	RProSelectJSONBean getSelectList(AccountBean account, int type);
	
	/**
	 * 删除商品
	 * @param account
	 * @param pid
	 * @return
	 */
	boolean delProduct(AccountBean account, String pid);

}
